The present invention relates to industrial controllers for controlling industrial processes or manufacturing equipment and in particular to a method of simplifying the programming of industrial controllers.
Industrial controllers are special purpose computers used for controlling industrial processes or manufacturing equipment. Under the direction of a stored control program, the industrial controller examines a set of inputs reflecting the status of the controlled process and changes a set of outputs controlling the controlled process based on control logic of the control program. The inputs and outputs may be binary, that is on or off, or analog, providing a value within a continuous range. Typically analog signals are converted to binary words for processing.
Unlike conventional computers which normally run standardized applications, industrial controllers often operate programs uniquely tailored for a particular control situation. Accordingly, it is important to be able to efficiently and easily program industrial controllers.
In this regard, it is known to reuse elemental portions of other control program “fragments” in creating the control logic of a control program for a particular job. This may be done by copying the program fragments and inserting them one or more times within the body of the control program to be developed. Generally a control program will include “control logic” portion determining relationships between the process inputs and process outputs and a “visualization” or “human machine interface” (HMI) portion providing a display of the industrial process and a means for operator input.
A characteristic feature of the control logic of a control program is its need to contend with a large number of input and output variables, each corresponding to control points on the controlled process. The input and output variables of the reused program control logic fragments, when integrated into the body of the control program being developed, must be re-named and cross referenced so as to preserve the uniqueness of the variable names for each program fragment and so as to keep track of the variable's relationship both to the controlled process and to the program fragment of which it is a part. This renaming and cross-referencing is a laborious task.
After the control logic is complete, a human machine interface (HMI) may be developed. As mentioned above, the HMI portion of the control program may provide for software control or monitoring of input and output variables and of the controlled process itself. Such monitoring may use one or more virtual controls (e.g., pushbuttons or the like displayed on a computer monitor) and/or animations of equipment during particular input and output states. The program fragment underlying each virtual control or animation may be reused in the same way that program fragments are reused for the control logic. Such reuse imposes a similar burden in renaming input and output variables, and the additional burden of cross-referencing of the variables of the HMI program fragments to the variables of the control logic which they portray.
HMI program fragments cannot normally be preconnected to corresponding control logic because this limits the programmer's flexibility to omit HMI for some control logic and to use multiple HMI for other control logic. Connecting HMI program fragments to the appropriate control logic program fragments after the control logic fragments have been integrated into the body of a larger program is complicated by the necessity of renaming of the control logic fragments and their variables during this integration process.
What is needed is a method of identifying related program fragments and maintaining consistency among the variables of related program fragments even after the program fragments have been integrated into a control program.